﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Utils;

namespace Logic
{
    public class Personas
    {
        private Data.Personas _hnd_personas = new Data.Personas();

        private Data.Personas HndPersonas
        {
            get { return _hnd_personas; }
        }

        protected StringBuilder Validate(Entities.Persona instance)
        {
            StringBuilder b = new StringBuilder();

            if (instance.Nombre.Trim().IsEmptyString()) b.AppendLine("* No ingresó el nombre");
            else if (!instance.Nombre.Trim().IsLengthBetween(1, 255)) b.AppendLine("* El nombre debe tener entre 1 y 255 caracteres");
            if (instance.Apellido.Trim().IsEmptyString()) b.AppendLine("* No ingresó el apellido");
            else if (!instance.Apellido.Trim().IsLengthBetween(1, 255)) b.AppendLine("* El apellido debe tener entre 1 y 255 caracteres");
            if (instance.Direccion.Trim().IsEmptyString()) b.AppendLine("* No ingresó la dirección");
            else if (!instance.Direccion.Trim().IsLengthBetween(1, 255)) b.AppendLine("* La dirección debe tener entre 1 y 255 caracteres");
            if (instance.Telefono.Trim().IsEmptyString()) b.AppendLine("* No ingresó el teléfono");
            else if (!instance.Telefono.Trim().IsLengthBetween(1, 255)) b.AppendLine("* El teléfono debe tener entre 1 y 255 caracteres");
            if (instance.Email.Trim().IsEmptyString()) b.AppendLine("* No ingresó el email");
            else if (!instance.Email.Trim().IsLengthBetween(1, 255)) b.AppendLine("* El email debe tener entre 1 y 255 caracteres");
            else if (!instance.Email.Trim().IsValidEmail()) b.AppendLine("* El email ingresado es inválido");
            if (instance.FechaNacimiento >= DateTime.Today) b.AppendLine("* La fecha de nacimiento debe ser anterior a la de hoy");

            return b;
        }

        public void Delete(Entities.Persona instance)
        {
            HndPersonas.Delete(instance);
        }
    }
}
